import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
import SearchPopup from '../views/SearchPopup.vue'
import Topic from '../views/Topic.vue'
import Category from '../views/Category.vue'
import Cart from '../views/Cart.vue'
import User from '../views/User.vue'
import ProductDetail from '../views/ProductDetail.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect:"/home"
  },
  {
    path: '/home',
    name: 'Home',
    component: Home,
    children:[
        {
            path:'/home/searchPopup',
            component: SearchPopup,
        }
    ],
    meta:{
        num:0, //在AppTabbar.vue组件中.影响active的值
        isShowTabbar:true //决定tabbar是否在该页面中展示

    }
  },{
      path:'/topic',
      name: 'Topic',
      component: Topic,
      meta:{
          num:1,
          isShowTabbar:true
      }
  },{
      path:'/category',
      name: 'Category',
      component: Category,
      meta:{
          num:2,
          isShowTabbar:true
      }
  },{
      path:'/cart',
      name: 'Cart',
      component: Cart,
      meta:{
          num:3,
          isShowTabbar:true
      }
  },{
      path:'/user',
      name: 'User',
      component: User,
      meta:{
          num:4,
          isShowTabbar:true
      }
  },
  ,{
      path:'/productDetail',
      name: 'ProductDetail',
      component: ProductDetail,
      meta:{
          isShowTabbar:false
      }
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

// 路由守卫(路由拦截)
router.beforeEach((to,from,next)=>{
    // 什么时候执行? 在每一次跳转路由之前执行
    //console.log("to",to);//to是一个对象，包含了即将要去往的路由的信息
    //console.log("from",from);//from是一个对象，包含了从哪个路由出发的路由的信息
    
    //实现效果：点击购物车，如果用户已经登录了，就直接放行，如果没有登录要跳转到"/user"页面
    if(to.path === "/cart"){
        // 判断有没有登录。即获取token,如果有token就放行
        let token = localStorage.getItem("token")
        if(token){
            next()
        }else{
            //拿不到token,表示没有登录，要跳转到user页面
            Vue.prototype.$toast("请先登录！");
            setTimeout(()=>{
                next("/user");
            },500)
        }
        return
    }
    //如果去的页面不是购物车：
    next();//必须调用next才能跳转到想要去的页面，没有调用就无法跳转页面

})

export default router
